package com.wanxin.realm;

import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.AuthenticationInfo;
import org.apache.shiro.authc.AuthenticationToken;
import org.apache.shiro.authc.SimpleAuthenticationInfo;
import org.apache.shiro.realm.AuthenticatingRealm;
import org.apache.shiro.util.ByteSource;

/*
* 自定义的Realm 自定义 认证  授权 的方法
* */
public class MyRealm extends AuthenticatingRealm {
    //自定义的登入认证方法
    @Override
    protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
        System.out.println("认证开始");
        //获取用户的身份
        String usernaem = token.getPrincipal().toString();
        //获取用户的凭证
        String password = new String((char[]) token.getCredentials());
        //打印
        System.out.println("用户的登入信息："+usernaem+""+password);
        if (usernaem.equals("admin")){
            //获取从数据库中查询到的用户密码
            String sysPwd="9f638daad4eadd7cf8f1427eb02ef9ad";
            //使用shiro完成凭证的校验
            AuthenticationInfo info = new SimpleAuthenticationInfo(token.getPrincipal(),sysPwd, ByteSource.Util.bytes("bjsxt"),token.getPrincipal().toString());
            //返回校验结果
            return info;
        }
        return null;
    }
}
